home *** CD-ROM | disk | FTP | other *** search
/ C/C++ Users Group Library 1996 July / C-C++ Users Group Library July 1996.iso / listings / v_12_07 / plauger / istream.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-03  |  2.5 KB  |  82 lines

  1. // istream standard header
  2. #ifndef _ISTREAM_
  3. #define _ISTREAM_
  4. #include <streambuf>
  5.         // class istream
  6. class istream : virtual public ios {
  7. public:
  8.     istream(streambuf *_S)
  9.         : _Chcount(0), ios(_S) {}
  10.     istream(_Uninitialized)
  11.         : ios(_Noinit) {}
  12.     virtual ~istream();
  13.     _Bool ipfx(int = 0);
  14.     void isfx()
  15.         {}
  16.     istream& operator>>(istream& (*_F)(istream&))
  17.         {return ((*_F)(*this)); }
  18.     istream& operator>>(ios& (*_F)(ios&))
  19.         {(*_F)(*(ios *)this); return (*this); }
  20.     istream& operator>>(char *);
  21.     istream& operator>>(unsigned char *_S)
  22.         {return (*this >> (char *)_S); }
  23.     istream& operator>>(char&);
  24.     istream& operator>>(unsigned char& _C)
  25.         {return (*this >> *(char *)&_C); }
  26.     istream& operator>>(short&);
  27.     istream& operator>>(unsigned short&);
  28.     istream& operator>>(int&);
  29.     istream& operator>>(unsigned int&);
  30.     istream& operator>>(long&);
  31.     istream& operator>>(unsigned long&);
  32.     istream& operator>>(float&);
  33.     istream& operator>>(double&);
  34.     istream& operator>>(long double&);
  35.     istream& operator>>(void *&);
  36.     istream& operator>>(streambuf&);
  37.     int get();
  38.     istream& get(char *, int, char = '\n');
  39.     istream& get(unsigned char *_S, int _N, char _D = '\n')
  40.         {return(get((char *)_S, _N, _D)); }
  41.     istream& get(char&);
  42.     istream& get(unsigned char& _C)
  43.         {return (get((char&)_C)); }
  44.     istream& get(streambuf&, char = '\n');
  45.     istream& getline(char *, int, char = '\n');
  46.     istream& getline(unsigned char *_S, int _N, char _D = '\n')
  47.         {return(getline((char *)_S, _N, _D)); }
  48.     istream& ignore(int = 1, int = EOF);
  49.     istream& read(char *, int);
  50.     istream& read(unsigned char *_S, int _N)
  51.         {return(read((char *)_S, _N)); }
  52.     int peek();
  53.     istream& putback(char);
  54.     istream& unget();
  55.     int gcount() const
  56.         {return (_Chcount); }
  57.     int sync();
  58. #if _SIGNED_CHAR_IS_DISTINCT
  59.     istream& operator>>(signed char *_S)
  60.         {return (*this >> (char *)_S); }
  61.     istream& operator>>(signed char& _C)
  62.         {return (*this >> *(char *)&_C); }
  63.     istream& get(signed char *_S, int _N, char _D = '\n')
  64.         {return (get((char *)_S, _N, _D)); }
  65.     istream& get(signed char& _C)
  66.         {return (get((char&)_C); }
  67.     istream& getline(signed char *_S, int _N, char _D = '\n')
  68.         {return (getline((char *)_S, _N, _D)); }
  69.     istream& read(signed char *_S, int _N)
  70.         {return (read((char *)_S, _N)); }
  71. #endif /* _SIGNED_CHAR_IS_DISTINCT */
  72. protected:
  73.     int _Getffld(char [_MAX_EXP_DIG+_MAX_SIG_DIG+16]);
  74.     int _Getifld(char [_MAX_INT_DIG]);
  75. private:
  76.     int _Chcount;
  77.     };
  78.         // manipulators
  79. istream& ws(istream&);
  80. #endif
  81.  
  82.